//class Solution {
//public:
//    int maxProfit(vector<int>& prices) {
//        int f1 = -prices[0], f2 = 0, f3 = -prices[0], f4 = 0;
//        for (int i = 1; i < prices.size(); ++i) {
//            f1 = max(f1, -prices[i]);
//            f2 = max(f2, f1 + prices[i]);
//            f3 = max(f3, f2 - prices[i]);
//            f4 = max(f4, f3 + prices[i]);
//        }
//        return f4;
//    }
//};


//class Solution{
//public:
//    int maxProfit(int k, vector<int>&prices) {
//        if (prices.empty()) {
//            return 0;
//        }
//
//        int n = prices.size();
//        k = min(k, n / 2);
//        vector<vector<int>> buy(n, vector<int>(k + 1));
//        vector<vector<int>> sell(n, vector<int>(k + 1));
//
//        buy[0][0] = -prices[0];
//        sell[0][0] = 0;
//        for (int i = 1; i <= k; ++i) {
//            buy[0][i] = sell[0][i] = INT_MIN / 2;
//        }
//
//        for (int i = 1; i < n; ++i) {
//            buy[i][0] = max(buy[i - 1][0], sell[i - 1][0] - prices[i]);
//            for (int j = 1; j <= k; ++j) {
//                buy[i][j] = max(buy[i - 1][j], sell[i - 1][j] - prices[i]);
//                sell[i][j] = max(sell[i - 1][j], buy[i - 1][j - 1] + prices[i]);
//            }
//        }
//
//        return *max_element(sell[n - 1].begin(), sell[n - 1].end());
//    }
//};

var getDescentPeriods = function(prices) {
    let n = 1, prev = 1
        for (let i = 1; i < prices.length; i++) {
            if (prices[i - 1] - prices[i] == = 1) {
                prev++
            }
            else {
                prev = 1
            }
            n += prev
        }
    return n
};
